#ifndef __LEARN_OPENGL_CONFIG_H_INCLUDE__
#define __LEARN_OPENGL_CONFIG_H_INCLUDE__

#include <iostream>
#include <string>
#include <locale>
#include <assert.h>

typedef unsigned int uint;
typedef unsigned char uchar;
typedef unsigned short ushort;


//! creates four CC codes used in Irrlicht for simple ids
/** some compilers can create those by directly writing the
code like 'code', but some generate warnings so we use this macro here */
#define MAKE_LDX_ID(c0, c1, c2, c3) \
		((uint)(uchar)(c0) | ((uint)(uchar)(c1) << 8) | \
		((uint)(uchar)(c2) << 16) | ((uint)(uchar)(c3) << 24 ))

#ifndef INCLUDED_D3D
#define INCLUDED_D3D
#include <d3d11.h>
#include <d3dx11.h>
#include <d3dcompiler.h>
#include "mathtools\mathtools.h"
//#ifndef INCLUDE_DIRECTXMATH
//#define INCLUDE_DIRECTXMATH
//#include <DirectXMath.h>
//#endif
#pragma warning(push)
#pragma warning(disable:4838)//Because of the warning:unsigned int to int
//#include <xnamath.h>
#pragma warning(pop)
#endif

#define LOCALE_LANGUAGE "chs"//locale language define
//If one render face has more  than 5 textures,define this.
//#define RENDER_CONFIG_MUTI_TEXTURES


//error code 
#define RET_FAILED(ret)(ret==1)
#define RET_SUCCEED(ret) (ret==0)

#define __MAX_TEXTURE_LAYER_COUNT 4

#endif//! __LEARN_OPENGL_CONFIG_H_INCLUDE__